package com.symbol.QrCode;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import com.google.zxing.WriterException;
import com.symbol.Tools.ImageHandle;
import com.symbol.Tools.ImageLogoQRCode;

/**
 * 生成个性二维码包
 * 
 * @author symbol
 * @copyright: ${2017}www.easymbol.com inc. all rights reserved.
 */
public class GetQrCode {

	/**
	 * 获取带有logo的二维码
	 * 经测试不指定纠错参数时，默认使用的是 'L' 最低级别纠错参数
	 * 
	 * @param content
	 *            二维码携带内容
	 * @param width
	 *            二维码宽度
	 * @param imgPath
	 *            logo地址
	 * @param height
	 *            二维码高度
	 * @param stream
	 *            输出路径
	 */
	public static void GetLogoQrCode(String content, String imgPath, int width, int height, OutputStream stream)
			throws IOException, WriterException {
		if (content == null && "".equals(content)) {
			throw new IllegalArgumentException("content 不能为空");
		}
		if (width < 0 || height < 0) {
			throw new IllegalArgumentException("width 与 height 不能小于 0");
		}
		ImageHandle ih = new ImageHandle();
		ih.getLogoQrCode(content, width, height, imgPath, stream);
	}
	
	/**
	 * 获取带有艺术气息的二维码
	 * 经测试不指定纠错参数时，默认使用的是 'L' 最低级别纠错参数
	 * 
	 * @param content
	 *            二维码携带内容
	 * @param width
	 *            二维码宽度
	 * @param imgPath
	 *            logo地址
	 * @param height
	 *            二维码高度
	 * @param stream
	 *            输出路径
	 */
	public static void GetPhotoQrCode(String content, String imgPath, int width, int height, OutputStream stream)
			throws IOException, WriterException {
		if (content == null && "".equals(content)) {
			throw new IllegalArgumentException("content 不能为空");
		}
		if (width < 0 || height < 0) {
			throw new IllegalArgumentException("width 与 height 不能小于 0");
		}
		ImageLogoQRCode ih = new ImageLogoQRCode();
		ih.getPhotoQrCode(content, width, height, imgPath, stream);
	}
	
	public static void main(String[] args) throws Exception {
		File outfile = new File("D:/temp1.jpg");
		FileOutputStream outputStream = new FileOutputStream(outfile);
		File outfile2 = new File("D:/temp2.jpg");
		FileOutputStream outputStream2 = new FileOutputStream(outfile2);
		GetLogoQrCode("http://www.easymbol.com", "C:\\Users\\Administrator\\Desktop\\timg.jpg", 300, 300, outputStream);
		GetPhotoQrCode("http://www.easymbol.com", "C:\\Users\\Administrator\\Desktop\\e5e557cfac787a155071fce16e06314252059462.jpg", 300, 300, outputStream2);
	}
	
}
